package com.whfc.ms.api.emp.service;

import com.whfc.common.result.ListData;
import com.whfc.common.result.PageData;
import com.whfc.emp.dto.AppEmpCorpDTO;
import com.whfc.emp.dto.AppGroupDTO;
import com.whfc.emp.param.AppEmpGroupAddParam;
import com.whfc.emp.param.AppEmpGroupEditParam;

/**
 * @ClasssName MsAppGroupService
 * @Description 人员班组服务
 * @Author hw
 * @Date 2020/12/29 10:30
 * @Version 1.0
 */
public interface MsAppGroupService {

    /**
     * 班组列表
     *
     * @param projectId
     * @param pageNum
     * @param pageSize
     * @param keyword
     * @param corpId
     * @return
     */
    PageData<AppGroupDTO> list(Integer projectId, Integer pageNum, Integer pageSize, String keyword, Integer corpId);

    /**
     * 根据合作单位查找班组列表
     *
     * @param corpId
     * @return
     */
    ListData<AppGroupDTO> groupListByCorpId(Integer corpId);

    /**
     * 根据项目id查找班组
     *
     * @param projectId
     * @return
     */
    ListData<AppGroupDTO> groupListByProjectId(Integer projectId);

    /**
     * 根据组织机构查找班组列表
     *
     * @param deptId
     * @param keyword
     * @return
     */
    ListData<AppEmpCorpDTO> groupListByDeptId(Integer deptId, String keyword);

    /**
     * 添加班组
     *
     * @param param
     */
    void add(AppEmpGroupAddParam param);

    /**
     * 编辑班组
     *
     * @param param
     */
    void edit(AppEmpGroupEditParam param);

    /**
     * 删除班组
     *
     * @param groupId
     */
    void del(Integer groupId);

    void syncGroup(AppEmpGroupEditParam param);

    void syncCropName(Integer deptId);
}
